package com.suning.sawp.member.service;

import net.sf.json.JSONObject;

import com.suning.sawp.dto.common.ReturnMsg;
import com.suning.sawp.member.vo.MemCustomerDetailResponse;
import com.suning.sawp.member.vo.MemCustomerResponse;
import com.suning.sawp.member.vo.MemFollowLogResponse;

/**
 * 我的客户接口 〈一句话功能简述〉<br>
 * 〈功能详细描述〉
 *
 * @author 15050519
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public interface MemCustomerService {

	/**
	 * 查询首页数据
	 *
	 * @param staffId
	 */
	public ReturnMsg<JSONObject> index(String staffId);

	/**
	 * 查询我的客户列表 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param custName
	 * @param buyDateType
	 * @param isToday
	 * @param currIndex
	 * @param size
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	ReturnMsg<MemCustomerResponse> queryMyCustomers(String storeCode, String staffId, String custName, String buyDateType, boolean isToday, int currIndex, int size);

	/**
	 * 查询客户详情记录 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param custId
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	ReturnMsg<MemCustomerDetailResponse> queryMyCustomerDetail(Long custId);

	/**
	 * 保存客户跟进记录 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param custId
	 * @param type
	 * @param nexTime
	 * @param memo
	 * @param result
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	ReturnMsg<String> saveCustomerFollow(String storeCode, String staffId, Long custId, int type, String nexTime, String memo, String result, String devNo, String ip);

	/**
	 * 查询客户跟进记录列表 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param custId
	 * @param currIndex
	 * @param size
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	ReturnMsg<MemFollowLogResponse> queryCustomerFollowList(String storeCode, String staffId, Long custId, int currIndex, int size);

	/**
	 * 查询共享客户 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param storeCode
	 * @param currIndex
	 * @param size
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	ReturnMsg<MemCustomerResponse> queryShareCustomerList(String storeCode, String custName, int currIndex, int size);

	/**
	 * 更新共享客户 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param storeCode
	 * @param custId
	 * @param staffId
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	ReturnMsg<String> updateShareCustomer(String storeCode, Long custId, String staffId);

	/**
	 * 查询潜客列表 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param storeCode
	 * @param staffId
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	ReturnMsg<MemCustomerResponse> queryPotentialCustomerList(String storeCode, String staffId, int currIndex, int size);

	/**
	 * 插入潜客卡片信息 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	void dealPotentialCustomer();

	/**
	 * 将该员工客户修改成共享客户 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param staffId
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	void updateToShareCustomer(String staffId);
}
